package com.alameda.base.enums;

import lombok.Getter;

/**
 * 定义通用后端需要增删改查的表以及字段
 *
 * @author Lv
 * @date 2022/8/10
 */
@Getter
public enum CommonTableEnum {
    /**
     * 技术指标
     */
    BUSINESS_INDICATOR(true, true, "com.alameda.manage.pojo"),

    /**
     * 项目管理
     */
    MANAGE(true, true, "com.alameda.manage.pojo"),

    /**
     * 技术指标
     */
    TECHNICAL_INDICATOR(true, true, "com.alameda.manage.pojo"),

    /**
     * 用户表 密码字段不允许被查询
     */
    USER("password", true, true, "com.alameda.user.pojo"),

    /**
     * 用户组织
     */
    USER_ORGANIZATION(true, true, "com.alameda.user.pojo"),

    /**
     * 菜单
     */
    MENU(true, false, "com.alameda.menu.pojo"),

    ;

    /**
     * 允许所有字段对外开放
     *
     * @param get      详情权限
     * @param delete   删除权限
     * @param pojoPath 实体包路径
     */
    CommonTableEnum(boolean get, boolean delete, String pojoPath) {
        this.get = get;
        this.delete = delete;
        this.pojoPath = pojoPath;
    }

    /**
     * 全参构造 可保证开闭原则
     *
     * @param filed    不允许查询的Sql字段 (必须与表中字段命名方式相同  多个字段用逗号隔开 "a,b,c")
     * @param get      详情权限
     * @param delete   删除权限
     * @param pojoPath 实体包路径
     */
    CommonTableEnum(String filed, boolean get, boolean delete, String pojoPath) {
        this.filed = filed;
        this.get = get;
        this.delete = delete;
        this.pojoPath = pojoPath;
    }

    /**
     * 不允许被查询的Sql字段
     */
    public String filed;

    /**
     * 是否允许获取详情
     */
    public boolean get;

    /**
     * 是否允许删除
     */
    public boolean delete;

    /**
     * 实体包路径
     */
    public String pojoPath;

}


